This page last changed on Oct 22, 2008 by scytacki.

Contents

Description

The Jnlps are built by a maven plugin that is run from our Continuous Integration server.

Here is the list of currently built jnlps:
CC: http://jnlp.concord.org/dev/org/concord/maven-jnlp/
TELS Center: http://tels-develop.soe.berkeley.edu:8080/jnlp/org/telscenter/jnlp/
Each folder contains a series of versions of a particular jnlp.

These jnlps are built by this project in continuum:
CC: http://continuum.concord.org/continuum/servlet/continuum/target/View.vm/fid/maven2Project/id/76
TELS Center: http://www.telscenter.org/continuum/servlet/continuum/target/View.vm/fid/maven2Project/id/35

That continuum project is building this maven project:
CC: http://svn.concord.org/svn/projects/trunk/common/java/deploy/maven-jnlp/
TELS Center: https://tels.svn.sourceforge.net/svnroot/tels/trunk/Pas%20Suite/pas-jnlp/

Within the maven project there are sub projects for each jnlp. For simple jnlps there is just one file in the sub project "pom.xml"
For example:
The java-checker jnlp is built from this folder: http://svn.concord.org/svn/projects/trunk/common/java/deploy/maven-jnlp/java-checker/
It has a pom.xml:

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.concord</groupId>
    <artifactId>maven-jnlp</artifactId>
    <version>2</version>
  </parent>
  
  <groupId>org.concord.maven-jnlp</groupId>
  <artifactId>java-checker</artifactId>
  <name>Java Checker</name>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  
  <dependencies>
    <dependency>
      <groupId>org.concord</groupId>
      <artifactId>javachecker</artifactId>
      <version>0.1.0-SNAPSHOT</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  
  <properties>
    <mainClass>
       org.concord.javachecker.JavaChecker
    </mainClass>
    <argument>
       dummy
    </argument>
    <jvmVersion>
       1.4+
    </jvmVersion>
  </properties>
  
</project>

Each of these subfolders is referenced by maven multi-module project.
For CC there is just one level of modules. This is the top pom.xml: http://svn.concord.org/svn/projects/trunk/common/java/deploy/maven-jnlp/all-modules/pom.xml

For TELS Center there are 2 levels of modules:

Grouping Dependencies

If 2 jnlps use the same set of dependencies, it is helpful to group these in a separate pom so they are used once.
This is an example: http://svn.concord.org/svn/projects/trunk/common/java/deploy/maven-jnlp/sensor-common/pom.xml
It is referenced by this jnlp pom: http://svn.concord.org/svn/projects/trunk/common/java/deploy/maven-jnlp/otrunk-sensor/pom.xml
Here is the reference:

    <dependency>
	  <groupId>org.concord.maven-jnlp</groupId>
	  <artifactId>sensor-common</artifactId>
	  <version>0.1.0-SNAPSHOT</version>
	  <type>pom</type>
    </dependency>    

Add a new JNLP

  1. make a new subfolder
  2. copy a pom.xml from an existing subfolder to the new subfolder
  3. update the pom.xml to have the correct dependencies and name
  4. update the multi-module project to point to this new subfolder:
    • CC add it to: all-modules/pom.xml
    • TELS Center add it to: common-jnlp/pom.xml
  5. check the changes to SVN
  6. build the continuum project

Adding a new Dependency Group

  1. make a new subfolder
  2. copy a pom.xml from an existing dependency group, if there are no existing dep groups, copy a pom.xml from a jnlp subfolder
  3. update the pom.xml to have the correct dependencies and name
  4. deploy the pom in the shell by:
    • cd to the subfolder
    • run "mvn deploy"
  5. update your jnlp poms so they point to this dependency group
  6. check all the changes in to SVN
  7. build the continuum project

More Info

Webstart Jnlp Plugin
Maven Application Descriptor
Adding thirdparty jars to maven

Document generated by Confluence on Jan 27, 2014 16:52